g_utf8_get_char_validated() may return -1 or -2
return type is gunichar(guint32)
Therefore such checks like 'gunichar < 0' or 'gunichar > 0'
are always 'false' or 'true'(except when gunichar == 0).
Signed-off-by: Maks Naumov <maksqwe1@ukr.net>
https://bugzilla.gnome.org/show_bug.cgi?id=742774
gunichar c;
g_value_init (value, G_TYPE_UINT);
c = g_utf8_get_char_validated (string, strlen (string));
- if (c > 0)
+ if (c != 0 && c != (gunichar)-1 && c != (gunichar)-2)
g_value_set_uint (value, c);
return TRUE;
}
if (offset == 0)
{
prev_char = g_utf8_get_char_validated (q, p - q);
- if (prev_char < 0)
+ if (prev_char == (gunichar)-1 || prev_char == (gunichar)-2)
prev_char = 0;
}
g_free (surrounding);